home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
Token.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-27
|
3KB
|
90 lines
#ifndef Token_First
#ifdef __GNUG__
//pragma once
#pragma interface
#endif
#define Token_First
#include "Rectangle.h"
enum EvtCursorDir {
eCrsUp,
eCrsDown,
eCrsLeft,
eCrsRight
};
enum EventCodes {
eEvtNone = -1,
eEvtAscFirst = 0,
eEvtAscLast = 127,
eEvtMetaFirst = 128, // returned if key depressed with 'Left' or 'Right' key
eEvtMetaLast = 255,
eEvtPseudo = 0x7f << 8,
eEvtLocMove = eEvtPseudo + 0,
eEvtLocStill = eEvtPseudo + 1,
eEvtEnter = eEvtPseudo + 2,
eEvtExit = eEvtPseudo + 3,
eEvtLocMoveBut = eEvtPseudo + 4,
eEvtIdle = eEvtPseudo + 5,
eEvtButtons = eEvtPseudo + 32,
eEvtLeftButton = eEvtButtons + 0,
eEvtMiddleButton= eEvtButtons + 1,
eEvtRightButton = eEvtButtons + 2,
eEvtPfkFirst = eEvtPseudo + 42,
eEvtPfkLast = eEvtPfkFirst + 64,
eEvtFirstCursorKey= eEvtPseudo + 128,
eEvtCursorUp = eEvtFirstCursorKey + eCrsUp,
eEvtCursorDown = eEvtFirstCursorKey + eCrsDown,
eEvtCursorLeft = eEvtFirstCursorKey + eCrsLeft,
eEvtCursorRight = eEvtFirstCursorKey + eCrsRight,
eEvtLastCursorKey= eEvtCursorRight
};
enum EventFlags {
eFlgNone = 0,
eFlgButDown = BIT(0),
eFlgShiftKey = BIT(1),
eFlgCntlKey = BIT(2),
eFlgMetaKey = BIT(3) // left or right keys on SUN-2 and SUN-3 keyboards
};
class Token {
public:
short Code; // enum EventCodes
short Flags; // enum EventFlags
u_long At;
Point Pos;
public:
Token();
Token(EventCodes, EventFlags f= eFlgNone, Point pos= gPoint0);
bool DoubleClick(Token &t);
bool IsAscii()
{ return (bool) (Code >= eEvtAscFirst && Code <= eEvtAscLast); }
bool IsMeta()
{ return (bool) (Code >= eEvtMetaFirst && Code <= eEvtMetaLast); }
bool IsControl()
{ return (bool) (Code >= eEvtAscFirst && Code <= eEvtAscLast); }
bool IsKey()
{ return (bool) (Code >= eEvtAscFirst && Code <= eEvtMetaLast); }
bool IsFunctionKey()
{ return (bool) (Code >= eEvtPfkFirst && Code <= eEvtPfkLast); }
bool IsCursorKey()
{ return (bool) (Code >= eEvtFirstCursorKey
&& Code <= eEvtLastCursorKey); }
bool IsMouseButton()
{ return (bool) (Code >= eEvtButtons && Code <= eEvtRightButton); }
char MapToAscii();
Point CursorPoint();
EvtCursorDir CursorDir()
{ return (EvtCursorDir)((EvtCursorDir)Code - eEvtFirstCursorKey); }
int FunctionCode()
{ return Code - eEvtPfkFirst; }
void Dump();
};
#endif